package com.ruoyi.common.utils.bean;

import com.ruoyi.common.exception.GlobalException;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;

/**
 * BeanProperiesUtils
 *
 * @author HHKJ-SERVER-ZJ
 * @since 2023/5/12 15:45
 */
public class BeanPropertiesUtils
{
    /**
     * 获取对象中不为空的属性名称
     *
     * @param source 来源实体类
     * @return 名称数组
     */
    public static List<String> listNotNullName(Object source)
    {
        List<String> filedNameList = new ArrayList<>();
        Field[] fields = source.getClass().getDeclaredFields();
        try {
            Object value;
            for (Field field : fields) {
                field.setAccessible(true);
                value = field.get(source);
                if (value != null) {
                    filedNameList.add(field.getName());
                }
            }
        } catch (IllegalAccessException e) {
            throw new GlobalException("数据属性获取异常");
        }
        return filedNameList;
    }
}
